package org.springframework.aop.framework;

import org.springframework.aop.AdvisedSupport;
import org.springframework.aop.MethodMatcher;

import java.lang.reflect.Method;
import java.util.List;

/**
 * @Name AdvisorChainFactory
 * @Description: 拦截器链工厂接口
 * 描述信息：用来获得拦截器链的接口，它的一个实现类为 DefaultAdvisorChainFactory。
 * @Version v1.0.0
 * @Author: lichao
 * @Date: 2024-04-12 17:32:11
 **/
public interface AdvisorChainFactory {

    /**
     * 获取拦截器链及动态拦截器（Advice）
     *
     * @param config
     * @param method
     * @param targetClass
     * @return java.util.List<java.lang.Object>
     * @version v1.0.0
     * @author lichao
     * @date 2024-04-12 17:34:06
     */
    List<Object> getInterceptorsAndDynamicInterceptionAdvice(AdvisedSupport config, Method method, Class<?> targetClass);

}
